//
// Created by Yun on 2025/3/3.
//

#ifndef FRMAEWORK_DEMO_GPIO_UART_SLOW_NTERFACE_H
#define FRMAEWORK_DEMO_GPIO_UART_SLOW_NTERFACE_H

#include "interface_common_type.h"

/* UART接口定义 */
typedef struct Uart_Slow_Interface {
    uint8_t (*Init) (const void* pUartHwCfg,
                     uint8_t* u8RxBuffer,
                     uint16_t u16RxBufferSize,
                     uint8_t* u8TxBuffer,
                     uint16_t u16TxBufferSize,
                     pfNVIC_Callback_TypeDef pfRxFinishedCallback,
                     pfNVIC_Callback_TypeDef pfTxFinishedCallback,
                     uint8_t uint16Timeout);
    uint8_t (*Transmit) (const void* pUartHwCfg, uint8_t* pu8TxData, uint16_t u16Len);
    uint8_t (*Receive) (const void* pUartHwCfg, uint8_t* pu8RxData, uint16_t* pu16Len);
    uint8_t (*SetBaudrate)(const void* pUartHwCfg, uint32_t u32Baudrate);
}Uart_Slow_Interface_TypeDef;


#endif //FRMAEWORK_DEMO_GPIO_UART_SLOW_NTERFACE_H
